package com.redoor.app.stake.basicdata.service;


import com.redoor.app.stake.basicdata.model.BaseStake;
import com.yotouch.app.stake.model.Stake;

/**
 * 桩数据缓存服务封装类，包含一系列关联KEY，后续所有的桩相关缓存操作统一服务类
 * Created by wangjunlei on 2018/1/30.
 */
public interface BaseStakeRedisService {
    /**
     * 添加或更新stake数据对象
     * @param uuid
     * @param stakeInfo
     * @return
     */
    public boolean modifyStakenInfo(String uuid, BaseStake stakeInfo);

    /**
     * 删除station数据对象
     * @param uuid
     * @return
     */
    public boolean deleteStakeInfo(String uuid);

    /**
     * 判断是否存在
     * @param uuid
     * @return
     */
    public boolean isExistsStake(String uuid);

    /**
     * 根据桩编号判断缓存中是否存在桩
     * @param uuid
     * @param stakeNo
     * @return
     */
    public boolean isExistsStake(String uuid,String stakeNo);

    /**
     * 获取stake对象
     * @param uuid
     * @return
     */
    public BaseStake getStakeInfoByUuid(String uuid);

    /**
     * 根据注册码主键查询桩主键
     * @param regUuid
     * @return
     */
    public String getStakeByReg(String regUuid);

    /**
     * 根据注册码主键查找授权码
     * @param regUuid
     * @return
     */
    public String getAuthCodeByReg(String regUuid);

    public String getStakeInfoByNo(String stakeNo);

    /**
     * 根据桩编号查找桩主键   HSF接口使用
     * @param stakeNo
     * @return
     */
    public String getStakeUuidByNoHSF(String stakeNo);

    /**
     * 根据StakeNo作为key来查询
     * @param stakeNo
     * @return
     */
    public boolean isExistsStakeByNo(String stakeNo);

    /**
     * 判断是否存在--HSF接口使用
     * @param uuid
     * @return
     */
    public boolean isExistsStakeHSF(String uuid);

    /**
     * 添加或更新stake数据对象--HSF接口使用
     * @param uuid
     * @param stakeInfo
     * @return
     */
    public boolean modifyStakeInfoHSF(String uuid, Stake stakeInfo);

    /**
     * 根据uuid获取stake对象--HSF接口使用
     * @param uuid
     * @return
     */
    public Stake getStakeInfoByUuidHSF(String uuid);

}
